/*

    This file is part of Hometree.

    Hometree is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    Hometree is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public License
    along with Hometree.  If not, see <http://www.gnu.org/licenses/>.

    Copyright 2011,2012 Roman Held

*/

/********************************************************************\
                            Includes
\********************************************************************/
#include <QtPlugin>
#include <QMetaProperty>
#include "persistentservice.h"
#include "htr/htrlog.h"

/********************************************************************\
                            Defines
\********************************************************************/
#define IDENT "PSDMY"

/********************************************************************\
                            Implementation
\********************************************************************/

/*-------------------------------------------------------------------
*/
PersistentService::PersistentService(QObject *parent)
 : HtrPersistentService("dummy", parent)
{
}

/*-------------------------------------------------------------------
*/
void PersistentService::store(QObject *obj)
{
  Q_ASSERT(obj && obj->metaObject());
  const QMetaObject *m = obj->metaObject();
  HtrLog::instance()->info(IDENT,tr("store: %1").arg(m->className()));

  for(int i=0; i < m->propertyCount(); i++) {
    QMetaProperty p = m->property(i);
    if (p.isStored())
      HtrLog::instance()->info(IDENT,tr("store: %1: Property %2").arg(m->className()).arg(p.name()));
  }
}

/*-------------------------------------------------------------------
*/
void PersistentService::clear(QObject *obj)
{
  Q_ASSERT(obj && obj->metaObject());
  HtrLog::instance()->info(IDENT,tr("clear: %1").arg(obj->objectName()));
}

/*-------------------------------------------------------------------
*/
QList<QObject*> PersistentService::restoreAll()
{
  QList<QObject*> ret;
  HtrLog::instance()->info(IDENT,tr("restore: nothing to do.. :)"));
  return ret;
}

Q_EXPORT_PLUGIN2(plgservicedummy,PersistentService);
